package com.ruoyi.system.service;

import com.ruoyi.common.exception.user.TemplateException;
import com.ruoyi.system.domain.CompeWorkScroingRecord;
import com.ruoyi.system.domain.SysCertificateAll;
import com.ruoyi.system.domain.Work;

import java.util.List;

/**
 * @Author HP
 * @Date 2021/3/3
 * @Description TODO
 */
public interface CompeWorkScroingRecordService {

    /**
     * 根据传过来的证书信息生成学生证书
     */
    public void generateSchoolCertificates(List<SysCertificateAll> sysCertificateAlls) throws TemplateException;

    /**
     *  根据赛事id获取生成学校证书所需要的所有信息
     */
    public List<SysCertificateAll> querySysCertificateAllSchoolByEpid(Integer epid);


    /**
     * 根据传过来的证书信息生成学生证书
     */
    public void generateTeacherCertificates(List<SysCertificateAll> sysCertificateAlls) throws TemplateException;


    /**
     * 在排名公布后根据赛事id生成老师证书
     * @param epid
     */
    public List<SysCertificateAll> querySysCertificateAllTeacherByEpid(Integer epid);


    /**
     * 根据赛事id查询是否存在没有排名公布的信息
     */
    public Integer queryCompeWorkScroingRecordByPublicStatus(Integer epid);


    /**
     * 根据传过来的证书信息生成学生证书
     */
    public void generateStudentCertificates(List<SysCertificateAll> sysCertificateAlls) throws TemplateException;

    /**
     * 在排名公布后根据赛事id生成证书
     * @param epid
     */
    public List<SysCertificateAll> querySysCertificateAllStudentByEpid(Integer epid);

    /**
     * 查询是否评审过比赛
     */
    public CompeWorkScroingRecord queryCompeWorkScroingRecordIsNull(CompeWorkScroingRecord compeWorkScroingRecord);

    /**
     * 获取最后添加Id
     * @return
     */
    public Integer readLastInsertScoringId();

    /*
    查询当前赛事下的作品
     */

    public List<CompeWorkScroingRecord> queryCompetitionRankingAnnouncement(CompeWorkScroingRecord compeWorkScroingRecord,Integer pageNum,Integer pageSize);

    /**
     * 教师端根据教师id查询已评审作品的信息
     * @param compeWorkScroingRecord
     * @return
     */
    public List<CompeWorkScroingRecord> queryWorksRecordByTid(CompeWorkScroingRecord compeWorkScroingRecord);

    /**
     * 管理后台根据用户id查询已评审作品的信息
     * @param compeWorkScroingRecord
     * @return
     */
    public List<CompeWorkScroingRecord> queryWorksRecordByAdmin(CompeWorkScroingRecord compeWorkScroingRecord);
    /*
    颁奖
     */
    public void updateRanking(CompeWorkScroingRecord compeWorkScroingRecord);

    /**
     * 评分完成后添加评分信息
     */
    public void saveCompeWorkScroingRecord(CompeWorkScroingRecord compeWorkScroingRecord);

    /*
  点击公布修改状态
   */
    public void updatePublicStatus(CompeWorkScroingRecord compeWorkScroingRecord) throws Exception;

    /*
    查询获奖名单
     */
    public List<CompeWorkScroingRecord> queryPrize(int compe_id, String event_step);
}
